home *** CD-ROM | disk | FTP | other *** search
-
- ScreenManager by Bernhard Möllemann
- all rights reserved
-
-
- Hilfsprogramm zum Verwalten von Public-Screens
-
- Version V1.32
-
-
- ScreenManager (SM) ist ein kleines CLI-Programm, um Public-Screens zu
- öffnen, schließen oder noch andere Dinge zu tun. Die Screens können
- mit frei wählbarer Auflösung und Farben geöffnet werden. Auch die
- DrawInfo, die bestimmt, welche Farbe für Glanzeffekte verwendet wird,
- ist wählbar.
- SM kann aber auch bestimmte Screens zum System-Default-Screen machen
- und die anderen Public-Screen-Modes ändern. Außerdem ist es möglich,
- sich eine Liste aller Screens im System ausgeben zu lassen oder sich über
- Auflösung und andere Eigenschaften eines Screens zu informieren.
-
- Diese Anleitung gliedert sich in 6 Teile:
- Copyright
- CLI
- Beispiele
- Workbench
- HotKeys
- Schluß
- Das Copyright _muß_ jeder lesen! Wer schnell etwas ausprobieren
- will, sollte danach einfach die Beispiele durchprobieren. Die
- ernsthaften Anwender kommen allerdings nicht um die Lektüre der
- CLI-Optionen herum.
-
-
- Copyright
- ---------
-
- Das Programmpaket ScreenManager ist Copyright 1994 Bernhard Möllemann.
- Alle Rechte vorbehalten.
-
- Die Benutzung des Programms ScreenManager geschieht auf eigenes
- Risiko. Falls durch die Benutzung des Programms irgendein Schaden
- entsteht, kann der Autor dafür nicht haftbar gemacht werden.
-
-
- Dieses Programm ist frei kopierbar, solange folgende Regeln eingehalten
- werden:
-
- · ScreenManager darf nur als Ganzes verbreitet werden. Es müssen folgende
- Dateien in dieser Anordnung kopiert werden:
- SM/ScreenManager
- SM/ScreenManager.info
- SM/SM.doc
- SM/SM.anl
- SM/SM.ver
- SM/SM.doc.info
- SM/SM.anl.info
- SM/SM.ver.info
- SM.info
- SM.displayme
-
- · Das Paket darf nur in ungepackter Form oder als LhA-Archiv verbreitet
- werden. Das LhA-Archiv muß SM_1_32.lha oder SM.lha heißen.
-
- · Weder das Archiv noch eine der Dateien dürfen verändert werden. Einzige
- Ausnahme ist das Entfernen von Dateien, die nicht zum Archiv gehören.
-
- · Es darf kein Gewinn mit dem Verkauf, Vertrieb oder Kopieren des
- Programms erwirtschaftet werden.
-
- · Es darf ausschließlich auf folgenden Public-Domain Disketten
- verbreitet werden:
- AmigaLibDisks von Fred Fish
- AUGS (Amiga User Group Switzerland)
- AmigaJUICE
- SAUG (Saarbrückener Amiga User Group)
- Time
-
- · Es darf nicht ohne meine Einwilligung auf CD-ROMs verbreitet werden.
- Für die CD "Meeting Pearls Vol #1" ist hiermit die Genehmigung erteilt.
-
- Alle, die eine der oben ausgeschlossenen Formen der Verbreitung
- wünschen, müssen eine schriftliche Erlaubnis des Autors haben.
-
- Diese gibt es bei:
-
- Bernhard Möllemann
- Luisenstraße 17
-
- 76137 Karlsruhe
- Germany
-
-
- CLI
- ---
-
- Wie gesagt, läßt sich mit dem ScreenManager das "Screen-System" des
- Amiga kontrollieren. Es ist noch nicht möglich, das mit der Maus zu
- machen. Eine GUI ist am Entstehen, aber noch nicht fertig.
-
- Da es Public-Screens erst ab OS2.0 gibt, ist dieses natürlich
- Voraussetzung. Der ScreenManager sollte jedoch auch mit höheren
- Betriebssystemversionen laufen.
-
- Bliebe eigentlich nur noch zu sagen, daß der ScreenManager auch
- resi(dent) gemacht werden kann!
-
- Es gibt sechs verschiedene Aufgaben, die der ScreenManager lösen kann:
- Öffnen von Screens
- Schließen von Screens
- Informationen über Screen oder Graphikmodus liefern
- Liste der Graphikmodi ausgeben
- Schon geöffnete Screens manipulieren
- Globale Einstellungen ändern
-
- Das geschieht über jeweils einen Aufruf mit einer oder mehreren der
- folgenden Optionen (bitte nicht erschrecken!):
- NAME: Name des Screens
-
- OPEN: einen neuen Screen öffnen
- CLOSE: einen bestimmten Screen schließen
- INFO: gibt Infos über einen Screen aus
- LIST: listet Screens oder Modi auf
-
- EXPERT/FORCE: gibt mehr Infos aus und schaltet einige Abfragen ab
- QUIET: unterdrückt Fehlermeldungen im CLI
-
- TITLE: Screentitel bei OPEN
- DEPTH/PLANES: Anzahl der Bitplanes bei OPEN
- MODE: Auflösung bei OPEN. Der Name des ScreenModes
- DISPID: alternativ zu MODE ist dies die DisplayID eines neuen
- Screens
- SIZE/POS: Größe des Screens bei OPEN und Position beim Bewegen
- DISPCLIP: Größe des sichtbaren Screenbereichs bei OPEN
- COLORS: Farben bei OPEN.
- PENS: Farbnummern für DrawInfo
- NODRAG: Der Screen kann nicht mit der Maus bewegt werden
- EXCLUSIVE: Der Screen wird immer allein dargestellt
- INTERLEAVED: verlangt Interleaved BitMaps für diesen Screen
- PARENT: Gibt einen Parent-Screen an, zu dem dieser ein Child wird
- FONT: Font, der bei OPEN vom Screen benutzt werden soll
- FONTSIZE: Größe des obigen Fonts
-
- CLOSEGAD: versieht Screen mit einem Closegadget
- AUTOCLOSE: schließt Screen automatisch beim Schließen des letzten
- Fensters
- CX_TOFRONT: HotKey, der den Screen nach vorne bringt
- CX_DEFAULT: HotKey, der den Screen zum System-Default-Screen macht
- CX_PRIORITY: Priorität, auf der die HotKeys eingeklinkt werden
-
- TOFRONT: Screen nach vorne bringen
- TOBACK: Screen nach hinten bringen
- SHANGHAI: Shanghai-Modus einschalten
- NOSHANGHAI: Shanghai-Modus ausschalten
- POPPUB: PopPub-Modus einschalten
- NOPOPPUB: PopPub-Modus ausschalten
- DEFAULT: Screen zum System-Default-Screen machen
-
-
- Das ist ziemlich viel und kompliziert dazu. Aber im Prinzip lassen
- sich ja nur sechs verschiedene Sachen damit machen, der Rest sind
- Parameter dafür.
-
-
- 1.1) OPEN
-
- Öffnet einen neuen Screen. Wenn der Screen schon existiert, bekommt
- man eine entsprechende Fehlermeldung serviert. Folgende Argumente
- können bei OPEN noch angegeben werden:
-
-
- 1.1.1) NAME: Der Name des Screens.
- Unter diesem Namen wird der Screen als Public-Screen angemeldet. Ist
- kein TITLE angegeben, wird der Name auch als Titel verwendet. Der NAME
- muß angegeben werden.
-
- 1.1.2) TITLE: Der Screentitel.
- Das ist der Text, der in der Titelzeile des Screens zu sehen ist.
- Sichtbar ist er allerdings nur dann, wenn das aktive Fenster keinen
- eigenen Titel setzt.
-
- 1.1.3) DEPTH/PLANES: Tiefe des Screens.
- Sie legt hauptsächlich fest, wieviele verschiedene Farben dargestellt
- werden können - es sind 2^DEPTH. Für jeden Graphikmodus gelten
- bestimmte Grenzen für DEPTH.
-
- Werden sie überschritten, gibt es eine entsprechende Fehlermeldung.
- Die Voreinstellung wird aus dem Default-Screen kopiert.
-
- 1.1.4) MODE: legt den Grafikmodus fest.
- Hier gibt man - analog zu den Bezeichnungen in Prefs/ScreenMode - den
- Namen der Auflösung an. Dabei ist es nicht nötig, sich an die Groß-/
- Kleinschreibung zu halten.
-
- Da Commodores Kreativität so weit geht, daß in jeder neuen OS-Release
- die Display-Modes auch neue Namen erhalten, kann der Mode auch als
- Pattern angegeben werden. Es wird dann mit der pattern.library gesucht,
- wenn Mode nicht auf Anhieb gefunden wird.
-
- So läßt sich der Highres-Mode mit Zeilensprung in PAL recht zuverlässig
- mit MODE=PAL:Hi#?lace#? wählen 8-)
-
- Wer Modi, die keinen Namen haben, verwenden möchte, gibt einen String
- an, in dem jeder Buchstabe für eine bestimmte Eigenschaft steht. Wie
- diese kombiniert werden können, und welche überhaupt verfügbar sind,
- hängt von Graphikhardware und Monitor ab. Bei ungültigen Eingaben
- wird eine entsprechende Fehlermeldung ausgegeben.
-
- Die einzelnen Buchstaben stehen für:
- H: Hires (Default: Lores)
- L: Lace (Default: Kein Interlace)
- S: Superhires
- E: Extrahalfbright
- V: VGA
- P: Productivity
- A: A2024 mit 10Hz
- F: A2024 mit 15Hz
- X: HAM
-
- Der gewünschte Modus wird einfach durch Hintereinanderschreiben der
- einzelnen Buchstaben angegeben - z. B. MODE=SL für SuperHires-Lace
-
- Der Default-Mode wird vom Default-Public-Screen kopiert.
-
- 1.1.5) DISPID: DisplayID des zu öffnenden Screens.
- Sie kann alternativ zu MODE angegeben werden. Es darf allerdings nur
- MODE oder DISPID aufgeführt sein, nicht beides.
-
- Gültige Werte für eine DisplayID sind in graphics/displayinfo.h zu
- finden, vorausgesetzt, der entsprechende Monitor steht zur Verfügung.
- (Die Liste gibt auch "ScreenManager LIST DISPID" aus.)
-
- Da der ScreenManager keine DualPlayfield-Screens unterstützt,
- werden entsprechene DisplayIDs nicht akzeptiert.
-
- Die DISPID muß hexadezimal angegeben werden. Es dürfen $ oder 0x
- davor stehen.
-
- 1.1.6) SIZE: Größe des Screens in Pixeln.
- Voreingestellt ist Overscan-Text. Die Größe wird in dem Format
- LEFT,TOP,WIDTH,HEIGHT angegeben.
-
- Da WIDTH und HEIGHT wohl öfter gebraucht werden als LEFT und TOP,
- gelten, wenn nur zwei Werte angegeben sind, diese als WIDTH und
- HEIGHT. Zur besseren Lesbarkeit können sie auch als WIDTH×HEIGHT
- statt WIDTH,HEIGHT angegeben werden.
-
- Um die Overscan-Größen bequemer handhaben zu können, kann man auch
- die Overscan-Bereiche, die das System anbietet, namentlich angeben.
-
- Erlaubte Overscan-Namen sind:
- OSCAN_NORM Kein Overscan, Hardware-Default. Was C= offiziell
- als Auflösung angibt.
- OSCAN_TXT Text-Overscan, wird in Prefs eingestellt (Text auch in
- Ecken noch lesbar). OSCAN_TEXT ist auch erlaubt.
- OSCAN_STD Standard-Overscan, wird in Prefs eingestellt (Bild füllt
- gerade Monitor aus). OSCAN_STANDARD ist auch erlaubt.
- OSCAN_MAX Maximaler Overscan, wird durch Hardware festgelegt
-
- Die tippfaulen Leute können den _ oder das OSCAN_ auch weglassen.
-
- Um von diesen Werten abweichende Größen zu erhalten, schreibt man
- hinter den Overscan - durch einen Doppelpunkt getrennt - eine
- Größenangabe. In diesem Fall wird der entsprechende Overscan benutzt
- und die Größenangaben werden auf die Overscan-Größe _addiert_.
-
- Für Puristen:
-
- [[OSCAN[_]](NORM|TXT|TEXT|STD|STANDARD|MAX)[:]][[left,top,]width(,|x)height]
-
- Also sieht eine fertige SIZE-Angabe z.B. so aus:
-
- SIZE=OSCAN_STD:-10,-10,+20,+20
-
- Das ergibt einen Screen, bei dem die Größe den Standard-Overscan in
- jeder Richtung um 10 Pixel überragt.
-
- 1.1.7) DISPCLIP: Größe des sichtbaren Bereichs des Screens.
- Hier gilt das gleiche Format wie für SIZE.
-
- 1.1.8) COLORS: legt die Farben als RGB-Informationen fest.
- Sie werden als 3- oder 6-stellige Hexadezimalzahlen eingegeben
- und durch Komma getrennt. In _diesem_ Format darf kein führendes
- $ oder 0x auftauchen. Ein Screen mit schwarz und weiß wird dann
- so angegeben:
- COLORS=000,FFF oder COLORS=000000,FFFFFF
-
- Um mehr als 8 Bits pro Farbe angeben zu können, werden die
- einzelnen Farbanteile durch den Doppelpunkt getrennt. _Dabei_
- werden die drei Zahlen als Dezimalzahlen interpretiert,
- solange kein 0x oder $ davorsteht.
-
- Obiger Screen könnte also auch so angegeben werden:
- COLORS=0x0:0x0:0x0,$FFFFFFFF:$FFFFFFFF:$FFFFFFFF oder
- COLORS=0:0:0,4294967296:4294967296:4294967296
-
- Eine Farbe hat also dieses Format:
- RGB |
- RRGGBB |
- [$|0x] RRRRRRRR ':' [$|0x] GGGGGGGG ':' [$|0x] BBBBBBBB
-
- Da es bereits Farbtabellen in einem ähnlichen Format gibt
- (X Window System), diese aber i. a. nur 8 Bits umfassen, gibt
- es eine Erkennung für diesen Fall: Sind alle 3 Farbanteile <256,
- wird von einer 24 Bit-Palette ausgegangen und die Farbanteile
- entsprechend von 8 auf 32 Bits aufgeweitet.
-
- 1.1.9) PENS: Farbstifte, die für 3D-Darstellung benutzt werden.
- Dabei ist jeder Stift für bestimmte Effekte vorgesehen. Eine nähere
- Erläuterung ist in dem Include-File intuition/screens.h bei der
- Beschreibung der DrawInfo.Pens zu finden.
-
- Jedes Zeichen wird als (hexadezimale) Farbnummer der bei COLORS
- angegebenen Farben interpretiert. Daraus folgt, daß für die Stifte
- nur die ersten 16 Farben zur Verfügung stehen. Wer _wirklich_ mehr
- braucht, kann mir ja schreiben.
-
- Man muß nicht alle Stifte angeben, aber man muß alle Stifte, die
- _vor_ einem gewünschten Stift liegen, spezifizieren.
-
- Für die Farbstifte gilt:
-
- Stift Bezeichnung wird verwendet für ...
- 1 DETAILPEN Schrift (1.3-kompatibel)
- 2 BLOCKPEN Fülloperationen (1.3-kompatibel)
- 3 TEXTPEN normale Beschriftungen
- 4 SHINEPEN helle Kanten an 3D-Objekten
- 5 SHADOWPEN dunkle Kanten an 3D-Objekten
- 6 FILLPEN Hintergrund aktivierter Elemente \ z.B. aktiver
- 7 FILLTEXTPEN Text auf aktivierten Elementen / Fensterrahmen
- 8 BACKGROUNDPEN Hintergrund - muß auf 0 gesetzt werden
- 9 HIGHLIGHTTEXTPEN hervorgehobene Beschriftungen
- Folgende Pens sind erst ab 3.0 verfügbar
- 10 BARDETAILPEN Text in Screentitle und Default für Menütext
- 11 BARBLOCKPEN Hintergrund für Screentitle und Menü
- 12 BARTRIMPEN Farbe der Zeile unter Screenbar
-
- Das klingt ziemlich kompliziert und das Ergebnis ist auch nicht immer
- ganz vorhersehbar. Am besten fängt man mit einem der unten aufgeführten
- Beispiele an und modifiziert es, dann bekommt man schnell ein Gefühl
- dafür.
-
- 1.1.10) NODRAG: Dieses Flag verhindert ein Verschieben des Screens.
- Er kann dann nicht mehr mit der Maus bewegt werden. Dieses Feature
- ist erst ab OS 3.0 möglich.
-
- 1.1.11) EXCLUSIVE: Screens mit dieser Eigenschaft beanspruchen immer
- den ganzen Bildschirm für sich. Sie können nicht verschoben werden
- und sie sind auch nie im Hintergrund zu sehen, wenn ein anderer
- Screen heruntergezogen wird.
- Auch dieses Flag ist erst ab OS3.0 möglich.
-
- 1.1.12) INTERLEAVED: Fordert für diesen Screen Interleaved BitMaps
- an. Diese sollen das Scrolling beschleunigen. (Ab OS3.0)
-
- 1.1.13) PARENT: Gibt den Namen des Parent-Screens für diesen Screen an.
- Ab OS3.0 existieren Parent- und Child-Screens. Dabei gehören zu einem
- Parent-Screen ein oder mehrere Childs. Child-Screens können nur
- innerhalb des Parent-Screens bewegt werden. Auch nach vorne oder
- hinten können ein Parent-Screen und seine Child nur als Gruppe bewegt
- werden. Wird bei einen Child-Screen NODRAG gesetzt, ist er lediglich
- relativ zu seinem Parent fixiert.
-
- 1.1.14) FONT: Font, der dann Default-Font des Screens wird.
- Das kann auch ein proportionaler Font sein. Konnte der Font nicht
- gefunden werden, wird der Screen trotzdem mit dem Default-Font
- des Systems geöffnet! (Dieser Font wird mit dem Voreinstellungsprogramm
- SYS:Prefs/Font gesetzt.)
-
- Das .font am Ende ist optional. Außerdem kann die gewünschte Größe X
- auch mit .X angehängt werden: z. B. FONT=diamond.12
-
- 1.1.15) FONTSIZE: Größe des obigen Fonts.
- Hier kann so ziemlich alles angegeben werden, da die
- diskfont.library im Zweifelsfalle einen Font anderer
- Größe entsprechend skaliert.
-
- Diese Option gibt hübsche Effekte mit dummen Programmen!
-
- 1.1.16) CLOSEGAD: Hängt ein Closegadget an den Screen.
- Damit wird ein Schließsymbol (Closegadget) in der linken oberen Ecke
- des Screens eingerichtet. Man kann dann einfach per Mausklick den
- Screen wie ein Fenster schließen.
-
- 1.1.17) AUTOCLOSE: Schließt den Screen automatisch nach Benutzung.
- Ist diese Option angegeben, wird der Screen nach dem Verschinden des
- letzten Fensters geschlossen.
-
- 1.1.18) CX_TOFRONT: Hotkey, um den Screen nach vorne zu bringen.
- Hiermit kann man einen Hotkey (keine heiße Taste, sondern eine
- Abkürzung) definieren, mit dem der Screen bei Bedarf in den
- Vordergrund gebracht werden kann.
-
- Die Definition entspricht dem Standard der commodities.library. Wie
- eine solche Tastenkombination beschrieben wird, ist weiter unten
- erläutert.
-
- 1.1.19) CX_DEFAULT: Hotkey, um den Screen zum System-Default-Screen
- zu machen.
- Analog zu obigem ist das ein Hotkey, mit dem der Screen zum System-
- Default-Screen erklärt werden kann. Auch hier gelten die weiter unten
- nochmal aufgeführten Definitionen der commodities.library.
-
- 1.1.20) CX_PRIORITY: Priorität für obige Hotkeys.
- Wenn sie nicht angegeben ist, wird ein Default von 0 benutzt.
-
- 1.1.21) Weitere Optionen
- Zusätzlich kann man noch die Optionen
-
- SHANGHAI, NOSHANGHAI, POPPUB, NOPOPPUB, DEFAULT, TOFRONT oder TOBACK
-
- angeben. Eine nähere Beschreibung folgt noch, da diese auch verwendet
- werden können, ohne einen Screen zu öffnen.
-
- 1.1.22) FORCE/EXPERT: Schaltet einige Sicherheitsabfragen aus.
- In diesem Modus sind die Tests, ob die Hardware des Rechners die
- angegebenen Größen für SIZE, DISPCLIP und DEPTH überhaupt darstellen
- kann, ausgeschaltet. Wenn der Rechner dann Müll anzeigt oder gar
- abstürzt, bitte KEINEN Bugreport an C= oder mich!
-
- 1.1.23) QUIET: unterdrückt Fehlermeldungen
- Mit diesem Schlüsselwort werden fast alle Fehlermeldungen, die
- normalerweise im CLI ausgegeben werden unterdrückt. Dadurch
- wird verhindert, daß ein bislang geschlossenes Console-Fenster
- aufgeht, wenn man z. B. mit SM OPEN <scr> >NIL: QUIET einen evt.
- schon offenen Screen öffnen möchte.
-
-
- 1.2) CLOSE
-
- Schließt einen vorhandenen Screen.
-
-
- 1.2.1) NAME: Name des Screens.
- Die Groß-/Kleinschreibung muß nicht korrekt sein. Sind aber mehrere
- Screens da, die passen könnten, wird der erste genommen, der gefunden
- wird. Ist der NAME richtig geschrieben, wird _immer_ der
- entsprechende Screen genommen.
-
- Wenn man Angela Schmidts pattern.library (Fish 625 oder CD "Meeting
- Pearls") installiert hat, kann man sogar ein Pattern angeben -
- insbesondere wo* für Workbench!
-
- Im Moment gibt es drei spezielle Namen:
- * steht für den Screen, auf dem die Console dieses Prozesses liegt
- # steht für den Public-Screen, der vorne liegt
- . steht für den System-Default-Screen
-
- Diese Konventionen für den Namen gelten überall, außer natürlich bei
- OPEN.
-
-
- 1.2.2) FORCE: Schließt auch fremde Screens.
- Damit können auch Public-Screens, die weder vom ScreenManager noch von
- der Workbench stammen, geschlossen werden.
-
- Allerdings ist dann das Programm, welches sie geöffnet hat, nicht
- unbedingt darüber informiert. Wenn es später versucht, ein Fenster auf
- diesem Screen zu öffnen, kommt es zum Absturz. Auch kann es sein, daß
- zum Screen gehörige Resourcen (z. B. sein Font) nicht freigegeben werden.
-
- 1.2.3) QUIET: unterdrückt Fehlermeldungen
- Mit diesem Schlüsselwort werden fast alle Fehlermeldungen, die
- normalerweise im CLI ausgegeben werden, unterdrückt. Dadurch
- wird verhindert, daß sich ein bislang geschlossenes Console-Fenster
- öffnet, wenn man z. B. mit SM CLOSE <scr> QUIET einen evt. schon
- geschlossenen Screen schließt.
-
-
- 1.3) LIST
-
- Gibt eine Liste der Screens oder Auflösungen aus.
-
-
- 1.3.1) <ohne Parameter>: Zeigt die Screenliste an.
- Ausgegeben werden Name, Titel, Auflösung, Farben und Anzahl der
- Visitor-Fenster bzw. Locks des jeweiligen Screens.
-
- Dahinter steht <SM>, wenn der Screen vom ScreenManager geöffnet wurde.
- Es kann dort auch noch DEFAULT stehen, wenn es der System-Default-Screen
- ist, oder PRIVATE, wenn dieser Screen im Moment nicht öffentlich ist.
-
- Ist das Shell-Fenster zu schmal, wird die Ausgabe zweizeilig formatiert.
-
- 1.3.2) DISPID: Zeigt sämtliche Auflösungen an.
- Es wird eine Liste aller Darstellungsmodi, die dem System bekannt
- sind, ausgegeben. Hier kann auch ein Pattern angegeben werden um die
- Liste einzuschränken.
-
- Es stehen, wenn vorhanden, auch der Name und die Verfügbarkeit dabei.
-
- 1.3.3) MODE: Zeigt Auflösungen an.
- Gibt eine Liste der Darstellungsmodi, die dem System namentlich
- bekannt sind, aus und zeigt deren Verfügbarkeit an.
-
- Hier ist es erlaubt ein Pattern anzugeben, um die gelisteten Modi
- einzuschränken. Zum Beispiel SM LIST MODE PAL:#?
-
-
- 1.4) INFO
-
- Gibt Informationen über einen Screen oder einen Darstellungsmodus aus.
-
-
- 1.4.1) <ohne Parameter>: Druckt die momentan gültigen Public-Screen-Modes
- aus.
-
- 1.4.2) NAME: Zeigt Eigenschaften dieses Screens.
- Es werden z. B. seine Auflösung und Farbanzahl ausgegeben. Auch hier
- gelten die bei CLOSE erwähnten Sonderzeichen.
-
- 1.4.3) DISPID/MODE: Gibt Infos über den Darstellungsmodus aus.
- Es sind z. B. maximale Farbanzahl und minimale/maximale Größe eines
- solchen Screens dabei.
-
- Auch hier kann mit einem Pattern versucht werden, dem Tippfehler ein
- Schnippchen zu schlagen.
-
- Will man die Information über mehrere DisplayIDs oder Modi haben, kann
- man als DISPID/MODE ein Pattern angeben und muß noch das Schlüsselwort
- LIST angeben. So gibt z.B.
-
- ScreenManager INFO MODE PAL:#? LIST
-
- die Infos aller PAL-Modi aus.
-
- wichtig ist, daß hinter DISPID/MODE wirklich ein Pattern steht, da die
- Kommandozeile sonst nicht mehr eindeutig ist.
-
-
- 1.4.4) EXPERT: Gibt etwas mehr Infos aus.
- Diese Option kann bei allen Parametern von INFO zusätzlich angegeben
- werden. Es werden dann die Strukturen NameInfo, DisplayInfo,
- DimensionInfo und MonitorInfo komplett angezeigt.
-
- 1.4.5) QUIET: unterdrückt Fehlermeldungen.
- Mit diesem Schlüsselwort werden fast alle Fehlermeldungen, die
- normalerweise im CLI ausgegeben werden unterdrückt. Dadurch
- wird verhindert, daß ein bisher geschlossenes Console-Fenster
- aufgeht, wenn man z. B. so testet, ob ein Screen schon existiert:
-
- ScreenManager >NIL: INFO MyScreen QUIET
- If ERROR
- ...
- EndIf
-
-
-
- 1.5) Geöffnete Screens manipulieren.
-
- Folgende Optionen modifizieren die Modes eines vorhandenen
- Public-Screens. Dafür muß natürlich auch dessen Name angegeben sein.
- Auch hier gelten wieder die Abkürzungen, die bei CLOSE erläutert
- wurden.
-
- All diese Optionen können natürlich auch beim Öffnen eines neuen
- Screens angegeben werden.
-
- 1.5.1) COLORS: Nachträgliches Ändern der Farben.
- Damit kann die Farbpalette eines Screens im Nachhinein geändert
- werden. Die genaue Beschreibung des Formats ist unter OPEN (1.1.8)
- zu finden.
-
- Farben auf Screens fremder Programme können nur mit der Option FORCE
- geändert werden.
-
- Achtung! Werden die Farben des Workbench-Screens geändert, bekommt
- der IPrefs-Demon das nicht mit - genausowenig wie Intuition selber.
- Es kann dann zu "Effekten" bei Benutzung von Prefs/Palette kommen.
-
- 1.5.2) POS: Setzt die Screenposition neu.
- Damit kann die Position eines Screens nachträglich geändert werden.
- Das Format ist "POS=x,y".
-
- Screens, die vom Eigentümer mit dem Attribut NODRAG versehen
- wurden, um ein Verschieben zu verhindern, können nur unter Angabe
- von FORCE bewegt werden.
-
- 1.5.3) PLANES: Setzt die Anzahl der Planes des Screens neu.
- Diese Option ermöglicht es, die Anzahl der Planes des Screens zu erhöhen
- oder zu reduzieren. Sie wird nur zusammen mit FORCE akzeptiert - sonst
- wird lediglich eine Warnung ausgegeben.
-
- Da nicht bekannt sein kann, ob die Größe der BitMap-Struktur, in der
- für jede Plane ein Zeiger stehen muß, für die verlangte Anzahl der
- Planes ausreicht, _kann_ es passieren, daß bei Erhöhung der Planes
- fremder Speicher überschrieben wird!!! Also bitte _mehr_ als
- vorsichtig sein.
-
- Unter OS V3.0 oder höher ist es nicht möglich die Anzahl der Planes zu
- erhöhen, da die vom OS bereits geholte Colormap wohl zu klein ist.
-
- 1.5.4) DEFAULT: Screen zum System-Default-Screen machen.
-
- 1.5.5) TOFRONT: Screen nach vorne bringen.
-
- 1.5.6) TOBACK: Screen nach hinten bringen.
-
- 1.5.7) CX_TOFRONT: Ändert den Hotkey zum Nach-vorne-bringen des Screens.
- Mit CX_TOFRONT="" wird er abgeschaltet.
-
- 1.5.8) CX_DEFAULT: Ändert den Hotkey, der den Screen zum System-Default-
- Screen macht. Auch er läßt sich mit dem Leerstring ausschalten.
-
-
-
- 1.6) Globale Einstellungen Ändern.
-
- Diese Optionen beeinflussen globale Einstellungen und können auch
- ohne Screen angewandt werden:
-
- 1.6.1) SHANGHAI: Shanghai-Mode einschalten.
- Im Shanghai-Modus gehen auch die Fenster, die früher auf der Workbench
- aufgingen, auf dem System-Default-Screen auf.
-
- Damit kann man vor allem alte Programme, die noch nichts über das
- Konzept des Default-Screens wissen, von der Workbench fernhalten.
-
- 1.6.2) NOSHANGHAI: Shanghai-Mode ausschalten.
-
- 1.6.3) POPPUB: PopPub-Mode einschalten.
- In diesem Modus kommt der Screen nach vorne, sowie ein Fenster darauf
- geöffnet wird.
-
- 1.6.4) NOPOPPUB: PopPub-Mode ausschalten.
-
-
-
- Beispiele
- ---------
-
- Hier noch ein paar Beispiele:
-
- ScreenManager OPEN BlueScreen
- DISPID=$00029004 PLANES=3 PENS=171657404 FONT=courier.13
- SIZE=OSCAN_TEXT:+100,+100 DISPCLIP=OSCAN_TEXT
- COLORS=13B,AAC,D30,FFF,CC2,015,7AF,13F
- DEFAULT CLOSEGAD
-
- ScreenManager OPEN NobelScreen
- PLANES=3 PENS=121657404
- COLORS=9A6100,210:220:255,0533CC,0xFF:0xFF:0x14,DC0,730,F83,C30
- CX_PRI=10 CX_TOFRONT="lcommand s" CX_DEFAULT="lcommand shift s"
- DEFAULT SHANGHAI POPPUB CLOSEGAD
-
- ScreenManager OPEN ss TITLE NessieScreen
- MODE=PAL:[Hh]i*[Ll]ace* PLANES=2 SIZE=STD:0×0 PENS=021123103
- COLORS=69A,FEE,002,F7C
- DEFAULT SHANGHAI CLOSEGAD CX_TOFRONT "LCommand s" POPUP
-
- ScreenManager OPEN SimpleWB
- DEFAULT SHANGHAI POPPUB
-
- ScreenManager OPEN Child
- SIZE=TEXT:+40,+40,-80,-80
- CLOSEGAD PARENT SimpleWB
-
- ScreenManager LIST
-
- ScreenManager LIST MODE=PAL:#?
-
- ScreenManager INFO DISPID=$00008020 EXPERT
-
- ScreenManager CLOSE Simple*
-
- Diese Kommandos müssen in jeweils _einer_ Zeile eingegeben werden.
-
- Um auf einem solchen Screen Fenster öffnen zu können, muß man natürlich
- ein Programm haben, das sich nicht krampfhaft an die Workbench klammert,
- sondern seine Fenster auf dem System-Default-Screen öffnet. Das tun
- zumindest die Voreinstellungseditoren Time und Font sowie CON: (und
- fälschlicherweise IconEdit *ärger*).
-
- Ein Console-Window kann aber auch auf einem Screen, der _nicht_
- System-Default-Screen ist, aufgehen:
-
- CON:0/15/640/185/MeinFenster/CLOSE/SCREENNobelScreen.
-
- Der Display-Handler der WShell kann das natürlich auch.
-
-
-
- Workbench
- ---------
-
- Damit die Freunde der Workbench nicht ganz leer ausgehen, kann der
- ScreenManager auch die Merkmale (ToolTypes) als Argumente
- interpretieren.
-
- Die ToolTypes entsprechen den oben aufgeführten Kommandozeilenargumenten.
- Es gibt allerdings ein paar Unterschiede:
-
- NOSHANGHAI und NOPOPPUB
-
- gibt es nicht mehr. Sie müssen durch SHANGHAI=FALSE oder POPPUB=0 ersetzt
- werden.
-
- Es gibt einen zusätzlichen ToolType WINDOW. Das Argument wird als
- Filename genommen, in den die Ausgaben z. B. bei LIST wandern. Als
- File gilt natürlich auch eine Fensterbeschreibung wie z. B.
-
- CON:////ScreenManager-Output/CLOSE
-
- Ist WINDOW nicht angegeben, wird kein Fenster geöffnet und eventuelle
- Fehler werden über Requester gemeldet.
-
- Die Argumente müssen, auch wenn sie Leerzeichen enthalten, ohne
- Anführungszeichen eingegeben werden, da im Gegensatz zur
- Kommandozeile ja klar ist, wo das Argument aufhört.
-
- Wurde ein Projekt mit dem ScreenManager als Default-Tool angeklickt,
- werden die ToolTypes des ScreenManager als Defaults genommen und dann
- von denen des Projekts überschrieben.
-
- So kann man sich beispielsweise für jeden Screen, den man oft benutzt
- (bei mir ShellScreen und Workbench), ein Projekt mit NAME=<ScreenName>
- anlegen und einen ScreenManager mit dem ToolType DEFAULT.
-
- Klickt man jetzt erst auf das Projekt-Icon und dann zweimal mit gedrückter
- Shift-Taste auf den ScreenManager, wird der Screen <ScreenName> zum
- System-Default-Screen.
-
- Je nachdem, welches Pärchen ich "doppelklicke", kann ich so den ShellScreen
- oder den Workbench-Screen zum System-Default-Screen machen. Das Gleiche
- geht z. B. auch mit POS - und fertig ist der WB-Klick-Baukasten.
-
-
- Noch eine Bemerkung zur Workbench: Fehlermeldungen werden, wenn kein
- Ausgabefenster mit WINDOW=... angegeben wurde, mit einem Requester gemeldet.
- Leider kann es vorkommen, daß bei recht langen Fehlermeldungen, die durch
- extrem lange Screennamen verursacht werden können, die Layout-Routinen von
- Intuition etwas durcheinandergeraten.
-
-
- Hotkeys
- -------
-
- Für die, die den dicken Schuber gerade nicht greifbar haben, hier
- noch die Sondertasten von Commodities V37. (kein Anspruch auf
- Vollständigkeit 8-):
-
- Events:
- rawkey, rawmouse, event, pointerpos,
- timer, newprefs, diskremoved, diskinserted
-
- Größtenteils nicht sehr sinnvoll, aber ganz lustig, wenn bei einem
- DiskInsert der Screen mit der Shell nach vorne kommt. Außerdem ist
- Timer noch ganz interessant, da man sonst keinen Qualifier allein
- ansprechen kann. Aber natürlich will ich das nicht empfehlen.
- Allerdings bin ich der Meinung, daß sich jeder sein System kaputt-
- konfigurieren darf, wie er will - nur beschweren darf er sich dann
- nicht.
-
- Qualifier:
- lshift, rshift, capslock, control, lalt, ralt, lcommand, rcommand,
- numericpad, repeat, relativemouse, shift, caps, alt, upstroke
-
- Keys:
- (midbutton, rbutton, leftbutton)
- comma, space, backspace, tab, enter, return, esc, del
- up, down, right, left
- f1, f2, f3, f4, f5, f6, f7, f8, f9, f10
- help
- sowie alle normalen druckbaren Zeichen, die dann für sich selbst stehen
-
- Eine Hotkey-Definition daraus sieht so aus:
-
- [<Qualifier> <Qualifier> ... ] <Event>|<Key>
-
- Da die Qualifier von der auslösenden Taste durch ein Leerzeichen getrennt
- werden, muß der ganze Ausdruck in Anführungszeichen gepackt werden. Also
- etwa so:
-
- CX_TOFRONT="lcommand s"
- CX_DEFAULT="lcommand shift s" oder CX_DEFAULT="lcommand S"
-
- Um Hotkeys mit großen Buchstaben auslösen zu können (wie die Alternative
- des zweiten Beispiels), muß dann natürlich noch die Shift-Taste gedrückt
- werden (oder die KeyMap ist maximal mystisch...).
-
-
-
- Schluß
- ------
- Vielen Dank an Frank Neumann (Franky) für die englische Übersetzung.
- Vielen Dank auch an Angela Schmidt für Bug-Reports und Anregungen.
-
- Ich danke auch:
- Frank Schwarz
- Bernd Ernesti
- Oliver Knorr
-
- Bug-Reports, Verbesserungsvorschläge, Glückwünsche, Schokokugeln,
- Flames und anderes (keine Briefbomben oder Raubkopien) an:
-
- zza@rz.uni-karlsruhe.de
-
- oder
-
- Bernhard Möllemann
- Luisenstraße 17
-
- 76137 Karlsruhe
-
- Germany
-
-
-